#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>


int g_val=100;


int main(){
     

    pid_t id=fork();
    if(id==0)
    {
      int cnt=0;
      //子进程
      while(1)
      {
        printf("child pid:%d.ppid:%d,g_val:%d,&g_val:%p\n",getpid(),getppid(),g_val,&g_val);
        sleep(1);

        cnt++;
        if(cnt==5)
        {
          g_val=200;
          printf("child change g_val:100->200\n");
        }

      }
      
    }else{

      while(1)
      {
        printf("father pid:%d.ppid:%d,g_val:%d,&g_val:%p\n",getpid(),getppid(),g_val,&g_val);
        sleep(2);
      }


    }

}







//int g_unval;
//int g_val= 100;
//
//int main(){
//
//  printf("code addr:%p\n",main);
//  printf("init data addr:%p\n",&g_val);
//  printf("uninit daata addr:%p\n",&g_unval);
//
//  char* heap=(char*)malloc(10);
//  printf("heap addr:%p\n",heap);
//  printf("stack addr:%p\n",&heap);
//
//  return 0;
//
//
//
//
//const char *myenv=getenv("myenv");
//
//  if(myenv==NULL)
//    printf("getenv get null\n");
//  else 
//    printf("myenv=%s\n",myenv);
//



//extern char **environ;
//**environ;
//for(int i=0;environ[i];i++){
//
//  printf("environ[%d]:%s\n",i,environ[i]);
//}
//
//  return 0;

//}
